package br.org.acessobrasil.portal.action;

import java.util.List;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import br.org.acessobrasil.portal.modelo.ItemMenu;
import br.org.acessobrasil.portal.modelo.Menu;
import br.org.acessobrasil.portal.modelo.Pagina;
import br.org.acessobrasil.portal.modelo.Sitio;
import br.org.acessobrasil.portal.modelo.Usuario;
import br.org.acessobrasil.portal.util.ListItem;

public interface ItemMenuActionInterface {

	public abstract String criarItemMenu();

	public abstract String listarItensDeMenu();

	public abstract String deletarItemMenu();

	public abstract String alterarOrdemItemMenu();

	public abstract String alterarNivelItemMenu();

	public abstract String atualizarItemMenu();

	public abstract long getNuMenu();

	public abstract void setNuMenu(long nu_menu);

	public abstract Menu getMenu();

	public abstract void setMenu(Menu menu);

	public abstract void setItemMenu(ItemMenu itemMenu);

	public abstract ItemMenu getItemMenu();

	public abstract void setListPagina(List<ListItem> listPagina);

	public abstract List<ListItem> getListPagina();

	public abstract Integer getOrdem();

	public abstract void setOrdem(Integer ordem);

	public abstract Integer getNivel();

	public abstract void setNivel(Integer nivel);

	public abstract boolean getEsconder();

	public abstract void setEsconder(boolean esconder);

	public abstract Sitio getSitio();

	public abstract void setSitio(Sitio sitio);
	
	public abstract List<ItemMenu> getListItemMenu();

	public abstract void setListItemMenu(List<ItemMenu> listItemMenu);

	public abstract String getFator();

	public abstract void setFator(String fator);
	
	public void setRequestKey(String requestKey);
	public String getRequestKey();
	
	public void setServletContext(ServletContext servletContext);
	
	public void setServletRequest(HttpServletRequest request);
	public ServletContext getServletContext();
	public HttpServletRequest getRequest();
	/**
	 * ATENCAO: Lazy
	 * @return retorna o usuario da sessao
	 * 
	 */
	public Usuario getUsuarioLogado();
	/**
	 * Atualiza o usuario da sessao
	 * @param usuarioLogado
	 */
	public void setUsuarioLogado(Usuario usuarioLogado);
	public String getMensagem();
	public void setMensagem(String mensagem);
	public String getBtnCancelar();
	public void setBtnCancelar(String btnCancelar);
	public Sitio getSitioAtual();
	public void setSitioAtual(Sitio sitioAtual);

	public void setServletResponse(HttpServletResponse response);

	public HttpServletResponse getResponse();
	public String getBtnApagar();
	public void setBtnApagar(String btnApagar);
	public String getBtnGravar();
	public void setBtnGravar(String btnGravar);
	/**
	 * Retira os atributos da sessao
	 */
	public void limparSessao();

	
	public List<Pagina> getListaDePaginasReais();
	public void setListaDePaginasReais(List<Pagina> listaDePaginasReais);
	public String listarPaginasPorItemMenu();
}